The amount of information that is readily available on the Internet has increased significantly over the past several years. Until recently, most information was provided by corporate websites. However, today, many individual users are publishing information as personal web pages. These personal web pages may contain a variety of web content, such as diaries, weblogs (commonly referred to as blogs), personal photo/video collections, personal advice, personal experiences, and the like. While the Internet provides a great avenue for publishing this web content, there are many obstacles that impact the individual user's ability to publish web content.
In general, individual content owners have two options for hosting their web content: (1) hosting on a commercial data center; or (2) hosting on their own personal computer using their own internet link. The commercial data center option provides reliable server and bandwidth link. Nevertheless, there are several short comings. For example, the owners have to pay an additional fee for the host service. They are limited in the amount of content that they can host on the data center. They are also limited in the amount of daily and monthly traffic allowed through the data center. They may not have access to their favorite applications or tools because the data center may not support theses applications or tools. In addition, the computation power and network bandwidth allocated to serve an individual user's request may be limited because the powerful server and high bandwidth link is shared among a large number of people that utilize the data center.
Alternatively, option 2 above, the content owners may host the web content on their own computer. Using one's own computer to host the web content avoids the additional fee, gives the owner virtually unlimited amount of hosting space (only limited by the size of the hard drive used), and bestows the owner with the freedom to choose any application/database. Nevertheless, there are obstacles. One obstacle is the unreliable and insufficient nature of delivering the web content to other users. In order to provide continuous access to the web content, the owner's home computer and internet connection must be running and working all the time. If the home computer experiences a failure or the computer is inadvertently powered off, it will not be able to provide the content. In addition, if the owner's connection to the Internet goes down, the owner again will not be able to provide the content. Even if it is possible to ensure that the computer and Internet connection never go down, there are still other obstacles to overcome, such as having sufficient bandwidth. It is not uncommon for Internet Service Providers (ISPs) to limit the upload speeds of the Internet connection from the user's home computer. These upload speeds are rarely sufficient to quickly deliver the web content to the other users. For example, even with a broadband connection, the upload speeds are usually limited to 128 Kbps, which does not provide adequate bandwidth to support the web content access request.
Corporate entities that publish web content can overcome these obstacles by investing in expensive server arrays and faster Internet connection. These options, however, are expensive and are not available to most individual users. Fortunately, an alternative cost effective solution has arisen for certain types of web content. This alternative solution is building a peer-to-peer (P2P) network. Examples of P2P consumer applications include “NAPSTER”, “KAZAA”, and gnutella. Each of these P2P consumer applications focus on sharing files among multiple computers. While sharing files may appear to be similar to sharing web sites, the sharing of web sites present unique challenges.
One challenge is the quantity of information that must be shared. The web site has multiple web pages, with each web page consisting of a collection of files. The entire collection of files must be readily available when an associated hyperlink is selected on one of the web pages. Thus, sharing a web site requires more storage space and consumes larger bandwidths than sharing a single file. Another challenge is the retrieval speeds and response time for serving the collection of files. Current P2P consumer applications allow the retrieval of the one file to be performed quite slowly, such as over several hours or even days. In addition, the retrieval can be scheduled for a time when the network is not as busy or as soon as the computer holding the content comes online. This slow retrieval speed is unacceptable when retrieving web pages because the requesting client is unlikely to wait for hours to view the web pages or wait for the computer to come online.
To overcome these challenges, there have been some attempts at replicating the web content on multiple computers. Then, when the content is accessed by a client, the content may be either accessed from the owner's home computer or from one of the other computers hosting the entire content. Having the web content replicated on multiple computers increases the reliability of the web content, because it is less likely that all the computers and their associated network links will be down at the same time. However, the serving bandwidth of the content remains the same because the entire content is still retrieved from one computer and its associated network connection. While this type of system does increase the reliability of accessing the web pages, the systems still require a large amount of storage capacity for storing the entire content and require a large amount of bandwidth for distributing the entire content. Thus, until now, there has not been a satisfactory solution for publishing web content that is suitable for use by the general public.